Web2Py তে Logs এবং Debugging টুলস ব্যবহৃত হয় অ্যাপ্লিকেশনের কার্যকারিতা পর্যবেক্ষণ এবং ডেভেলপারদের জন্য ত্রুটি বা সমস্যা চিহ্নিত করার জন্য। Web2Py এ রয়েছে একাধিক উপকরণ যা আপনাকে লগ ফাইল তৈরি করতে, ত্রুটি সনাক্ত করতে এবং ডিবাগিং প্রক্রিয়া সহজ করতে সহায়তা করে। এখানে Logs এবং Debugging টুলস সম্পর্কে বিস্তারিত আলোচনা করা হলো।
১. Web2Py Logs
Logs হল এমন ফাইল যেখানে অ্যাপ্লিকেশন চলাকালীন ঘটে যাওয়া ইভেন্ট বা ত্রুটির তথ্য সংরক্ষিত হয়। Web2Py তে logs ফোল্ডারটি ব্যবহৃত হয়, যেখানে সকল লগ ফাইল রাখা হয়। Web2Py আপনার অ্যাপ্লিকেশন সংক্রান্ত সব ধরনের কার্যকলাপ এবং ত্রুটি লগ করার জন্য বিল্ট-ইন লগ সিস্টেম সরবরাহ করে।
লগ ফাইল অবস্থান:
logsফোল্ডার: আপনার Web2Py অ্যাপ্লিকেশনেরlogsফোল্ডারে ত্রুটি, ডিবাগ, ওয়ার্নিং এবং অন্যান্য সিস্টেম ইভেন্টের লগ ফাইল সংরক্ষিত হয়।- লগ ফাইলের নাম সাধারণত
app_name.logথাকে।
লগ ফাইলের ব্যবহার:
Web2Py তে সাধারণত তিনটি ধরনের লগ রয়েছে:
- Error Log: এই লগ ফাইলে অ্যাপ্লিকেশনে যেকোনো ত্রুটি বা এক্সেপশন সম্পর্কিত তথ্য সংরক্ষিত থাকে।
- Access Log: ইউজারের অ্যাক্সেস সংক্রান্ত তথ্য যেমন, IP অ্যাড্রেস, রিকোয়েস্ট টাইম ইত্যাদি এই ফাইলে রেকর্ড হয়।
- Custom Logs: ডেভেলপাররা প্রয়োজনে নিজস্ব লগ মেসেজও ব্যবহার করতে পারেন, যেমনঃ ডিবাগিংয়ের সময় কোডের কিছু অংশের কার্যকারিতা দেখতে।
লগিং ব্যবহার:
Web2Py তে লগিং ব্যবহার করতে আপনি logging মডিউল ব্যবহার করতে পারেন। এর মাধ্যমে ডেভেলপাররা কাস্টম মেসেজ লগ করতে পারেন।
# controllers/default.py
import logging
# লগিং কনফিগারেশন
logging.basicConfig(filename='logs/app_name.log', level=logging.DEBUG)
def index():
logging.debug("This is a debug message")
logging.info("This is an info message")
logging.warning("This is a warning message")
logging.error("This is an error message")
logging.critical("This is a critical message")
return dict(message="Check the logs for more information.")
এই কোডটি logs/app_name.log ফাইলে বিভিন্ন লগ স্তরের মেসেজ সংরক্ষণ করবে।
২. Debugging Web2Py অ্যাপ্লিকেশন
Debugging হচ্ছে এমন একটি প্রক্রিয়া যার মাধ্যমে অ্যাপ্লিকেশনের কোডে সমস্যাগুলি চিহ্নিত এবং সংশোধন করা হয়। Web2Py তে ডিবাগিং করার জন্য বিল্ট-ইন ডিবাগ মোড এবং অন্যান্য টুলস রয়েছে।
Web2Py Debug Mode:
Web2Py তে ডিবাগ মোড চালু করার জন্য, আপনি web2py.py ফাইল চালানোর সময় -D অপশন ব্যবহার করতে পারেন।
ডিবাগ মোড চালু:
python web2py.py -D
ডিবাগ মোড চালু হলে:
- এটা অ্যাপ্লিকেশনের সব ত্রুটি এবং এক্সেপশন স্ট্যাক ট্রেস প্রদর্শন করবে।
- আপনি
response.errorব্যবহার করে ত্রুটির মেসেজ দেখতে পারবেন এবং সরাসরি ব্রাউজারেই দেখতে পাবেন।
Web2Py Error Reporting:
Web2Py তে যদি কোনো কোডের মধ্যে ত্রুটি ঘটে, তবে Web2Py তা সরাসরি ব্রাউজারে প্রদর্শন করবে। সাধারণত, ডিবাগ মোডে Web2Py ত্রুটি সম্পর্কিত বিস্তারিত তথ্য দেখায়, যেমন:
- স্ট্যাক ট্রেস
- ত্রুটির সঠিক অবস্থান (লাইন নম্বর)
- ত্রুটির ধরণ
এটি ডেভেলপারদের দ্রুত সমস্যা চিহ্নিত করতে সহায়তা করে।
৩. Interactive Debugging Tools
Web2Py একটি Interactive Debugger সরবরাহ করে, যা আপনার কোডে ত্রুটি সনাক্ত করতে সাহায্য করে। আপনি একটি কোডে সমস্যা সনাক্ত করার জন্য pdb (Python Debugger) ব্যবহার করতে পারেন।
উদাহরণ: pdb ব্যবহার করা:
# controllers/default.py
import pdb
def index():
a = 10
b = 0
pdb.set_trace() # ডিবাগging শুরু হবে এখানে
c = a / b # এখানে ত্রুটি ঘটবে
return dict(message="Result: %s" % c)
যখন এই কোডটি চলবে, তখন Web2Py ইন্টারেক্টিভ ডিবাগার চালু হবে এবং ডেভেলপারকে কোডের ভেতরে ডিবাগ করার সুযোগ দেবে।
৪. Error Handling in Web2Py
Web2Py তে Error Handling করতে, আপনি try-except ব্লক ব্যবহার করতে পারেন, যার মাধ্যমে আপনি ত্রুটি ধরা এবং সেগুলি কাস্টম মেসেজের মাধ্যমে ইউজারকে জানাতে পারেন।
উদাহরণ:
# controllers/default.py
def index():
try:
a = 10
b = 0
c = a / b
except ZeroDivisionError as e:
response.flash = "Cannot divide by zero!"
logging.error(f"Error occurred: {str(e)}")
return dict(message="Check the logs for error details.")
এই কোডে, যখন ZeroDivisionError হবে, তখন ত্রুটির মেসেজ লগ এবং ইউজারকে প্রদর্শিত হবে।
৫. Web2Py Error Page Customization
আপনি যদি Web2Py তে Custom Error Pages তৈরি করতে চান, তাহলে views/errors/ ফোল্ডারে ত্রুটির পেজ তৈরি করতে পারেন। উদাহরণস্বরূপ, 404 (Not Found) বা 500 (Server Error) এর জন্য কাস্টম পেজ তৈরি করা যেতে পারে।
কাস্টম 404 পেজ:
<!-- views/errors/404.html -->
<h1>Page Not Found</h1>
<p>The page you are looking for does not exist.</p>
এই কাস্টম পেজটি Web2Py তখন ব্যবহার করবে যখন ইউজার ভুল URL তে যাবে।
সারাংশ
Web2Py তে Logs এবং Debugging টুলস ব্যবহার করে অ্যাপ্লিকেশনের কার্যকারিতা এবং ত্রুটি সনাক্ত করা সহজ। Logs ফাইলের মাধ্যমে অ্যাপ্লিকেশনের সব কার্যকলাপ এবং ত্রুটি রেকর্ড করা যায়। Debugging টুলস যেমন ডিবাগ মোড এবং pdb (Python Debugger) ব্যবহার করে আপনি কোডে ত্রুটি খুঁজে বের করতে পারেন এবং দ্রুত সমাধান করতে পারেন। Web2Py এর বিল্ট-ইন লগিং এবং ডিবাগিং টুলস ডেভেলপারদের দ্রুত ত্রুটি সমাধানে সহায়তা করে এবং অ্যাপ্লিকেশনটির সঠিক কার্যকারিতা নিশ্চিত করে।
Read more